<?php
include_once '../classes/design.php';
include_once '../classes/dao.php';
include_once '../classes/marcador.php';

function campo_ordenavel($campo, $label) {
	global $ord_campo, $ord_direcao, $pode_alterar_ord, $design, $tipos_eventos, $nome_busca, $local_busca, $musica_busca, $musica_id_busca, $descricao_busca, $tipo_data, $data_inicio, $data_fim;

	$url = $_SERVER["PHP_SELF"]."?";
	$separador = "";
	foreach ($tipos_eventos as $indice => $tipo_eventos) {
		$url .= $separador."tipos_eventos[]=$tipo_eventos";
		$separador = "&";
	}
	$url .= $separador."nome_busca=$nome_busca&local_busca=$local_busca&musica_busca=$musica_busca&musica_id_busca=$musica_id_busca&descricao_busca=$descricao_busca&tipo_data=$tipo_data&data_inicio=$data_inicio&data_fim=$data_fim";
	if (isset($_REQUEST["busca"])) {
		$url .= "&busca=1";
	}

	$retorno = "";

	if ($ord_campo == $campo) {
		if ($ord_direcao == "ASC") {
			$retorno .= "▲";
		}
		else {
			$retorno .= "▼";
		}
	}
	$retorno .= " $label ";
	if ($pode_alterar_ord === true) {
		$retorno .= "<br/>";
		if ($ord_campo == $campo) {
			if ($ord_direcao == "ASC") {
				$retorno .= "<a href=\"$url&ord_campo=$campo&ord_direcao=DESC\">(Ord. ▼)</a>";
			}
			else {
				$retorno .= "<a href=\"$url&ord_campo=$campo&ord_direcao=ASC\">(Ord. ▲)</a>";
			}
		}
		else {
			$retorno .= "<a href=\"$url&ord_campo=$campo&ord_direcao=ASC\">(Ord. ▲)</a>";
		}
	}

	return $retorno;
}

$design = new Design("..");
$design->adicionar_form("form_busca");
$design->imprimir_topo();

echo "<a href=\"index.php\" class=\"titulo\">Eventos</a><br/>";

$dao = new DAO();

if (isset($_REQUEST["erro"])) {
	echo "<div class=\"erro\">".$_REQUEST["erro"]."</div>";
}

if (isset($_REQUEST["sucesso"])) {
	echo "<div class=\"sucesso\">".$_REQUEST["sucesso"]."</div>";
}

$tipos_eventos = array("Missa", "Animação");
$nome_busca = "";
$local_busca = "";
$tipo_data = "";
$data_inicio = "";
$data_fim = "";
$musica_busca = "";
$musica_id_busca = "";
$descricao_busca = "";
foreach ($_REQUEST as $indice => $valor) {
	$$indice = preg_replace("/ +/", " ", $valor);
}
if ($data_inicio == "") {
	$tipo_data = "";
}
if ($tipo_data == "") {
	$data_inicio = "";
	$data_fim = "";
}

if (isset($_REQUEST["ord_campo"]) && isset($_REQUEST["ord_direcao"])) {
	$ord_campo = $_REQUEST["ord_campo"];
	$ord_direcao = $_REQUEST["ord_direcao"];
}
else {
	$ord_campo = "data_inicio";
	$ord_direcao = "DESC";
}
?>

<script type="text/javascript" src="../javascript/funcoes.js"></script>
<script type="text/javascript" src="../javascript/validacao.js"></script>
<script type="text/javascript" src="../javascript/date.format.js"></script>
<script type="text/javascript" src="../javascript/jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="../javascript/jquery-ui-1.8.17.custom.min.js"></script>
<script type="text/javascript" src="../javascript/jquery.ui.datepicker-pt-BR.js"></script>

<script type="text/javascript">
function mostrarOuEsconderOutraData() {
	var opcao = $('input:radio[name=tipo_data]:checked').val();
	if (opcao == "entre") {
		mostrarInline("data_escondida");
	}
	else {
		esconder("data_escondida");
	}
}

function limparMusicaID() {
	if ($("#musica_busca").val() == "") {
		$("#musica_id_busca").val("");
		$("#musica_id_busca").attr("alt", "");
	}
}

$(function() {
	var dates = $("#data_inicio, #data_fim").datepicker({
		dateFormat: 'dd/mm/yy',
		changeMonth: true,
		changeYear: true,
		yearRange: 'c-5:c+5',
		onClose: function() {
			desselecionar(this);
		},
		onSelect: function(selectedDate) {
			var dia = selectedDate.substring(0, 2);
			var mes = selectedDate.substring(3, 5);
			var ano = selectedDate.substring(6, 10);
			var dataSelecionada = new Date(mes + "-" + dia + "-" + ano);
			var option;
			if (this.id == "data_inicio") {
				option =  "minDate";
				dataSelecionada.setDate(dataSelecionada.getDate() + 1);
			}
			else {
				option = "maxDate";
				dataSelecionada.setDate(dataSelecionada.getDate() - 1);
			}
			data = dataSelecionada.format('dd/mm/yyyy');
			dates.not(this).datepicker("option", option, data);
		}
	});
});

$(function() {
	if ("<?php echo $musica_id_busca; ?>" == "") {
		$("#musica_busca").val("");
	}
	if ("<?php echo $musica_busca; ?>" == "") {
		$("#musica_id_busca").val("");
	}
	
	$( "#musica_busca" ).focus(function () {
		if ($("#musica_id_busca").val() == "") {
			$("#musica_id_busca").attr("alt", "Música|Obrig");
		}
	});
	$( "#musica_busca" ).blur(function () {
		limparMusicaID();
	});
	$( "#musica_busca" ).keydown(function(event) {
		if ((event.which != 13) &&
			(event.which != 37) && 
			(event.which != 38) &&
			(event.which != 39) &&
			(event.which != 40)) {
			$("#musica_id_busca").val("");
		}
	});
	$( "#musica_busca" ).autocomplete({
		source: "../servicos/procurar_musicas.php",
		minLength: 2,
		delay: 0,
		change: function (event, ui) {
			if (!ui.item) {
				$("#musica_busca").val("");
			}
			else {
				$("#musica_id_busca").val(ui.item.id);
			}
			limparMusicaID();
		},
		select: function (event, ui) {
			if (!ui.item) {
				$("#musica_busca").val("");
			}
			else {
				$("#musica_id_busca").val(ui.item.id);
			}
			limparMusicaID();
		},
		close: function (event, ui) {
			limparMusicaID();
		}
	});
});
</script>

<?php 
echo "
 <a href=\"javascript: void(0);\" onclick=\"javascript: mostrarOuEsconder('escolha');\">".$design->get_imagem("mais.gif")." Novo evento</a>
 <div id=\"escolha\" style=\"display: none;\">
 	Escolha o tipo do novo evento: <a href=\"form_missa.php\">Missa</a> | <a href=\"form_animacao.php\">Animação</a>
 </div>
 <br/>
 <br/>
 <form method=\"post\" id=\"form_busca\" action=\"".$_SERVER["PHP_SELF"]."\">
 	<input type=\"hidden\" name=\"busca\" value=\"1\" />
 	".$design->get_imagem("search.png")." Buscar eventos:<br/>
 	<br/>
 	Tipos de evento: <input type=\"checkbox\" 
 						name=\"tipos_eventos[]\" 
 						value=\"Animação\" 
 						id=\"tipo_evento_animacao\" 
";
if (in_array("Animação", $tipos_eventos)) {
	echo " checked";
}
echo "
 						/><label for=\"tipo_evento_animacao\">Animação</label>
 	<input type=\"checkbox\" 
 		name=\"tipos_eventos[]\" 
 		value=\"Missa\" 
 		id=\"tipo_evento_missa\" 
";
if (in_array("Missa", $tipos_eventos)) {
	echo " checked";
}
echo "
		/><label for=\"tipo_evento_missa\">Missa</label><br/>
 	Nome do evento: <input type=\"text\" 
 						name=\"nome_busca\" 
 						alt=\"Nome do Evento|Opcional|ComprimentoMinimo.3\" 
 						onkeyup=\"javascript: preencher(this, 'SOLETRASEESPACO', event);\" 
 						style=\"width: 150px; margin-right: 20px;\" 
 						value=\"".(isset($nome_busca) ? htmlentities($nome_busca, ENT_QUOTES, "UTF-8") : "")."\" />
 	Local: <input type=\"text\" 
 			name=\"local_busca\" 
 			alt=\"Local|Opcional|ComprimentoMinimo.3\" 
 			onkeyup=\"javascript: preencher(this, 'SOLETRASEESPACO', event);\" 
 			style=\"width: 100px; margin-right: 20px;\" 
 			value=\"".(isset($local_busca) ? htmlentities($local_busca, ENT_QUOTES, "UTF-8") : "")."\" />
	Música: <input type=\"text\"
				id=\"musica_busca\" 
				name=\"musica_busca\"
				style=\"width: 150px; margin-right: 20px;\" 
				value=\"".(isset($musica_busca) ? htmlentities($musica_busca, ENT_QUOTES, "UTF-8") : "")."\" />
			<input type=\"hidden\"
				id=\"musica_id_busca\"
				name=\"musica_id_busca\" 
				value=\"".(isset($musica_id_busca) ? $musica_id_busca : "")."\" />
	Descrição: <input type=\"text\" 
 				name=\"descricao_busca\" 
 				alt=\"Descrição|Opcional|ComprimentoMinimo.3\" 
 				onkeyup=\"javascript: preencher(this, 'SOLETRASEESPACO', event);\" 
 				style=\"width: 150px; margin-right: 20px;\" 
 				value=\"".(isset($descricao_busca) ? htmlentities($descricao_busca, ENT_QUOTES, "UTF-8") : "")."\" /><br/>
	Data: <input type=\"radio\"
			onclick=\"javascript: mostrarOuEsconderOutraData();\"
			id=\"tipo_data_antes\"
			name=\"tipo_data\"
			value=\"antes\" 
";
if ($tipo_data == "antes") {
	echo " checked";
}
echo "
			/><label for=\"tipo_data_antes\">Antes de</label>
	<input type=\"radio\"
		onclick=\"javascript: mostrarOuEsconderOutraData();\"
		id=\"tipo_data_depois\"
		name=\"tipo_data\"
		value=\"depois\" 
";
if ($tipo_data == "depois") {
	echo " checked";
}
echo "
			/><label for=\"tipo_data_depois\">Depois de</label>
	<input type=\"radio\"
		onclick=\"javascript: mostrarOuEsconderOutraData();\"
		id=\"tipo_data_entre\"
		name=\"tipo_data\"
		value=\"entre\" 
";
if ($tipo_data == "entre") {
	echo " checked";
}
echo "
			/><label for=\"tipo_data_entre\">Entre</label>
	<input type=\"text\" 
		id=\"data_inicio\" 
		name=\"data_inicio\" 
		style=\"width: 80px;\" 
		value=\"".(isset($data_inicio) ? $data_inicio : "")."\" />
	<div id=\"data_escondida\" style=\"display: 
";
if ($tipo_data == "entre") {
	echo "inline-block";
}
else {
	echo "none";
}
echo ";\">
		e <input type=\"text\" 
			id=\"data_fim\" 
			name=\"data_fim\" 
			style=\"width: 80px;\" 
			value=\"".(isset($data_fim) ? $data_fim : "")."\" />
	</div>
 	<br/>
 	<button type=\"submit\">Pesquisar</button>
 </form>
";

if (isset($_REQUEST["busca"])) {
	$pode_alterar_ord = true;
	$eventos = $dao->consulta_eventos($tipos_eventos, $nome_busca, $local_busca, $tipo_data, $data_inicio, $data_fim, $musica_id_busca, $descricao_busca, $ord_campo, $ord_direcao);
	$palavras_marcar = array($nome_busca, $local_busca, $tipo_data, $data_inicio, $data_fim);
	$numero = count($eventos);
	if ($numero == 0) {
		$texto = "Não foi encontrado <b>nenhum</b> evento";
	}
	elseif ($numero == 1) {
		$texto = "Foi encontrado <b>1</b> evento";
	}
	else {
		$texto = "Foram encontrados <b>$numero</b> eventos";
	}
	
	$explicacoes = array();
	$explicacao_eventos = "";
	$separador_eventos = "";
	if (in_array("Missa", $tipos_eventos)) {
		$explicacao_eventos .= "<b>missas</b>";
		$separador_eventos = " e ";
	}
	if (in_array("Animação", $tipos_eventos)) {
		$explicacao_eventos .= $separador_eventos."<b>animações</b>";
	}
	$explicacoes[] = $explicacao_eventos;
	
	if ($nome_busca != "") {
		$explicacoes[] = "com nome <b>$nome_busca</b>";
	}
	
	if ($local_busca != "") {
		$explicacoes[] = "local <b>$local_busca</b>";
	}
	
	if ($tipo_data == "antes" || $tipo_data == "depois") {
		$explicacoes[] = "data <b>$tipo_data de $data_inicio</b>"; 
	}
	
	if ($tipo_data == "entre") {
		if ($data_fim != "") {
			$explicacoes[] = "data <b>$tipo_data $data_inicio e $data_fim</b>";
		}
		else {
			$explicacoes[] = "data <b>depois de $data_inicio</b>";
		}
	}
	
	if ($musica_busca != "") {
		$explicacoes[] = "que tenha a música <b>$musica_busca</b>";
	}
	
	if ($descricao_busca != "") {
		$explicacoes[] = "com <b>$descricao_busca</b> em sua descrição";
	}
	
	$separador = ", ";
	for ($i = 0; $i < count($explicacoes); $i++) {
		if ($i == 0) {
			$texto .= ", buscando por ";
		}
		elseif ($i == count($explicacoes) - 1) {
			$texto .= " e ";
		}
		else {
			$texto .= $separador;
		}
		$texto .= $explicacoes[$i];
		
	}
	
}
else {
	$pode_alterar_ord = false;
	$eventos = $dao->consulta_ultimos_5_eventos($ord_campo, $ord_direcao);
	$texto = "Esses são os registros dos <b>".count($eventos)."</b> eventos mais recentes";
	$palavras_marcar = array();
}
echo $texto;

if (count($eventos) > 0) {
	echo "
	 <table border=\"1\" style=\"margin-top: 20px; width: 100%;\">
	 	<tr>
			<th></th>
		 	<th>".campo_ordenavel("nome", "Evento")."</th>
		 	<th nowrap>".campo_ordenavel("tipo", "Tipo")."</th>
		 	<th>".campo_ordenavel("local", "Local")."</th>
		 	<th>".campo_ordenavel("data_inicio", "Data")."</th>
		 	<th>Músicas</th>
		 	<th>".campo_ordenavel("quando_mexeu", "Alteração")."</th>
		 	<th>Folha</th>
	 		<th>Excluir</th>
	 	</tr>
	";
	foreach ($eventos as $indice => $evento) {
		if ($descricao_busca != "") {
			$mostrar_descricao = $dao->descricao_de_evento_contem_busca($descricao_busca, $evento);
		}
		else {
			$mostrar_descricao = false;
		}
		echo "
		 <tr>
		 	<th 
		";
		if ($mostrar_descricao) {
			echo "rowspan=\"2\"";
		}
		echo "
			>".($indice + 1)."</th>
		 	<td 
		";
		if ($mostrar_descricao) {
			echo "rowspan=\"2\"";
		}
		echo "
			><a href=\"".$evento->get_form()."\">".Marcador::marcar($nome_busca, $evento->get_nome(), "marca")."</a></td>
		 	<td align=\"center\">".$evento->get_tipo()."</td>
		 	<td align=\"center\">".Marcador::marcar($local_busca, $evento->get_local(), "marca")."</td>
		 	<td align=\"center\" nowrap>".($data_inicio != "" ? "<span class=\"marca\">".$evento->get_data()."</span>" : $evento->get_data())."</td>
		 	<td>".Marcador::marcar_musica($evento->get_5_musicas($musica_id_busca), "marca", $musica_id_busca)."</td>
		 	<td align=\"center\" nowrap>".$evento->get_quando_mexeu()."<br/>por ".$evento->get_quem_mexeu()."</td>
		 	<td
		";
		if ($mostrar_descricao) {
			echo "rowspan=\"2\"";
		}
		echo "
				 	align=\"center\"><a href=\"folha.php?id=".$evento->get_id()."\">".$design->get_imagem("folha.png")."</a></td>
		 	<td 
		";
		if ($mostrar_descricao) {
			echo "rowspan=\"2\"";
		}
		echo "
		 	align=\"center\"><a href=\"javascript: void(0);\" onclick=\"javascript: confirmarExclusaoEvento(".$evento->get_id().", '".addslashes(htmlspecialchars($evento->get_nome()))."', '".$evento->get_tabela()."');\">".$design->get_imagem("excluir.gif")."</a></td>
		 </tr>
		";
		if ($mostrar_descricao) {
			echo "
			 <tr>
			 	<td colspan=\"4\"><b>Descrição:</b> ".Marcador::marcar($descricao_busca, $evento->get_descricao(), "marca")."</td>
			 </tr>
			";
		}
	}
	echo "</table>";
}
?>





<?php 
$design->imprimir_fim();
?>